diff --git a/system/database/drivers/sqlsrv/sqlsrv_driver.php b/system/database/drivers/sqlsrv/sqlsrv_driver.php
index d64e981..53d9748 100644
--- a/system/database/drivers/sqlsrv/sqlsrv_driver.php
+++ b/system/database/drivers/sqlsrv/sqlsrv_driver.php
@@ -107,9 +107,7 @@
 	 */
 	function db_select()
 	{
-		// Note: The brackets are required in the event that the DB name
-		// contains reserved characters
-		return @mssql_select_db('['.$this->database.']', $this->conn_id);
+		// not implemented in sqlsrv
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlsrv/sqlsrv_result.php b/system/database/drivers/sqlsrv/sqlsrv_result.php
index 2897ca5..058c6f4 100644
--- a/system/database/drivers/sqlsrv/sqlsrv_result.php
+++ b/system/database/drivers/sqlsrv/sqlsrv_result.php
@@ -34,7 +34,7 @@
 	 */
 	function num_rows()
 	{
-		return @mssql_num_rows($this->result_id);
+		return @sqlsrv_num_rows($this->result_id);
 	}
 
 	// --------------------------------------------------------------------
@@ -47,7 +47,7 @@
 	 */
 	function num_fields()
 	{
-		return @mssql_num_fields($this->result_id);
+		return @sqlsrv_num_fields($this->result_id);
 	}
 
 	// --------------------------------------------------------------------
@@ -63,7 +63,7 @@
 	function list_fields()
 	{
 		$field_names = array();
-		while ($field = mssql_fetch_field($this->result_id))
+		while ($field = sqlsrv_get_field($this->result_id))
 		{
 			$field_names[] = $field->name;
 		}
@@ -84,7 +84,7 @@
 	function field_data()
 	{
 		$retval = array();
-		while ($field = mssql_fetch_field($this->result_id))
+		while ($field = sqlsrv_get_field($this->result_id))
 		{
 			$F				= new stdClass();
 			$F->name		= $field->name;
@@ -110,7 +110,7 @@
 	{
 		if (is_resource($this->result_id))
 		{
-			mssql_free_result($this->result_id);
+			sqlsrv_free_stmt($this->result_id);
 			$this->result_id = FALSE;
 		}
 	}
@@ -129,7 +129,7 @@
 	 */
 	function _data_seek($n = 0)
 	{
-		return mssql_data_seek($this->result_id, $n);
+		// Not implemented
 	}
 
 	// --------------------------------------------------------------------
@@ -144,7 +144,7 @@
 	 */
 	function _fetch_assoc()
 	{
-		return mssql_fetch_assoc($this->result_id);
+		return sqlsrv_fetch_array($this->result_id, SQLSRV_FETCH_ASSOC);
 	}
 
 	// --------------------------------------------------------------------
@@ -159,7 +159,7 @@
 	 */
 	function _fetch_object()
 	{
-		return mssql_fetch_object($this->result_id);
+		return sqlsrv_fetch_object($this->result_id);
 	}
 
 }
